"""
演示：主进程执行完毕以后，子进程会被同步关闭

    当主进程结束的时候，如果想让子进程同步释放，方式如下：
        方式1：设置子进程为守护进程（推荐）
            格式：
                子进程名.daemon = True
            特点：
                当非守护进程关闭的时候，它的守护进程也会被同步关闭
        方式2："强制"销毁子进程
            可能会出现问题，子进程会成为“僵尸进程”，即：资源不会被释放

"""
# 需求：创建一个子进程，执行完成大概需要2秒钟，而父进程执行完需要1秒钟，实现该需求，观察结果
import time,multiprocessing

# 1：定义一个函数，worker(),表示子进程要执行的任务
def worker():
    for i in range(10):
        print(f"正在执行任务...{i}")
        time.sleep(0.2) # 0.2秒*10=2秒

if __name__ == '__main__':
    # 2：创建进程对象，关联：要执行任务（函数）
    p = multiprocessing.Process(target=worker)
    # 方式1：设置子进程为守护进程（推荐）
    # p.daemon = True

    # 3: 开启进程
    p.start()

    time.sleep(1)

    # 方式2："强制"销毁子进程
    p.terminate()

    print("main进程（主进程）执行结束")

